/*----日期处理工具-----*/
//获取当前日期
function getNowFormatDate(pattern) {
	var date = new Date();
	var seperator1 = pattern;
	var month = date.getMonth() + 1;
	var strDate = date.getDate();
	if (month >= 1 && month <= 9) {
		month = "0" + month;
	}
	if (strDate >= 0 && strDate <= 9) {
		strDate = "0" + strDate;
	} 
	var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate;
	return currentdate;
}

/**
 * 描述：日期增加/减少天数 
 * @author zhou zheng
 * @param date   string日期格式，格式可以为：yyyyMMdd、yyyy-MM-dd、yyyy/MM/dd、yyyy,MM,dd  注意：月和日必须都是2位
 * @param value  整型  正数或负数   正数：代表增加；负数：代表减少
 * @returns new_date   8位长的日期字符串 格式：yyyyMMdd
 */

function AddDaysUtil(date,value,pattern)
{  
	date=getDateFromString(date);
	var new_date=new Date(date.setDate(date.getDate()+value));
	return turnDateToString(new_date,pattern);
}  
   
/**
 * 描述：日期增加/减少月 
 * @author zhou zheng
 * @param date   string日期格式，格式可以为：yyyyMMdd、yyyy-MM-dd、yyyy/MM/dd、yyyy,MM,dd  注意：月和日必须都是2位
 * @param value  整型  正数或负数   正数：代表增加；负数：代表减少
 * @returns new_date   8位长的日期字符串 格式：yyyyMMdd
 */ 
function   AddMonthsUtil(date,value,pattern)
{  
	date=getDateFromString(date);
	var new_date=new Date(date.setMonth(date.getMonth()+value));   
	return turnDateToString(new_date,pattern);
}  
   
/**
 * 
* 描述：日期增加/减少年
 * @author zhou zheng
 * @param date   string日期格式，格式可以为：yyyyMMdd、yyyy-MM-dd、yyyy/MM/dd、yyyy,MM,dd  注意：月和日必须都是2位
 * @param value  整型  正数或负数   正数：代表增加；负数：代表减少
 * @returns new_date   8位长的日期字符串 格式：yyyyMMdd
 */ 
function   AddYearsUtil(date,value,pattern)
{  
	date=getDateFromString(date);
	var new_date=new Date(date.setFullYear(date.getFullYear()+value));   
	return turnDateToString(new_date,pattern);
}  
/**
 * 描述：将字符串转化成Date类型
 * @author zhou zheng
 * @param dateStr  string日期格式长度为8位，格式可以为：yyyyMMdd、yyyy-MM-dd、yyyy/MM/dd、yyyy,MM,dd
 * @returns   Date  类型
 */
function getDateFromString(dateStr)
{
	var str=dateStr+"";
	str=turnToUnityDateFormat(str,"-");
	str=turnToUnityDateFormat(str,"/");
	str=turnToUnityDateFormat(str,",");
	str=str.substring(0, 4)+"/"+str.substring(4, 6)+"/"+str.substring(6, 8);
	return new Date(str);
}

/**
 * 描述：含有某个字符的日期字符串统一转化成yyyyMMdd
 * @param str 某个日期字符串 格式可以为：yyyy-MM-dd、yyyy/MM/dd、yyyy,MM,dd
 * @param pattern -  或   ， 或   /
 * @returns str yyyyMMdd 字符串
 */
function turnToUnityDateFormat(str,pattern)
{
	while(str.indexOf(pattern)>=0)
	{
		str=str.replace(new RegExp(pattern), "");
	}
	return 	str;
}
/**
 * 描述：将日期格式化
 * @author zhou zheng
 * @param date Date 类型
 * @param pattern -  或   ， 或   /  或  空字符串
 * @returns {String}
 */
function turnDateToString(date,pattern)
{
	return date.getFullYear()+pattern+((date.getMonth()+1)<10?("0"+(date.getMonth()+1)):(date.getMonth()+1))+pattern+(date.getDate()<10?("0"+date.getDate()):date.getDate());
}


/**
 * 描述：两个日期之间的间隔的天数  （注：始终为正数）
 * @author zhou zheng  
 * @param DateOne
 * @param DateTwo
 * @returns  天数   正数
 */
function daysBetween(DateOne,DateTwo)  
{   
	DateOne=getDateFromString(DateOne);  
	DateTwo=getDateFromString(DateTwo); 
    var cha=(DateOne - DateTwo)/86400000;   
    return Math.abs(cha);  
}  

/**
 * 描述：DateTwo-DateOne  的天数  
 * @author zhou zheng  
 * @param DateOne
 * @param DateTwo
 * @returns  天数 
 */
function daysOfDateTwoSubDateOne(DateOne,DateTwo)  
{   
	DateOne=getDateFromString(DateOne);  
	DateTwo=getDateFromString(DateTwo); 
    var cha=(DateOne - DateTwo)/86400000;   
    return cha;  
}
/**
 * 描述：将8位数字日期转换成固定格式的时间日期  
 * @author zhangxueliang
 * @param date 日期
 * @param pattern 间隔符
 * @returns string
 */
function turnDatesToString(date,pattern)
{
	var newdate=date+'';
	val='';
	if(newdate==""||newdate.length<8)
	{
		return val;
	}
	else
	{
		return newdate.substring(0,4)+pattern+newdate.substring(4,6)+pattern+newdate.substring(6,8);
	}
	
}

/*
function dateCompare(startDate,endDate){
	turnToUnityDateFormat(startDate,"-");
	turnToUnityDateFormat(endDate,"-");
	var aStart=startDate.split('-'); //转成成数组，分别为年，月，日，下同
	var aEnd=endDate.split('-');
	var startDateTemp = aStart[0]+"/" + aStart[1]+ "/" + aStart[2];
	var endDateTemp = aEnd[0] + "/" + aEnd[1] + "/" + aEnd[2];
	if(startDateTemp > endDateTemp)
		return true;
	else
		return false;
}*/
